<?php
Class ProdutoDaOS extends TRecord{
	const TABLENAME='produtodaos';
	
	/*
	 * reecrevemos o construstor para que possamos instanciar um objeto já com seus
	* atributos
	*/
	public function __construct($id = NULL,$idos =NULL,$idpeca=NULL) {
		if ($id)
		{
			parent::__construct($id);
		}
		else if ($idos<>NULL and $idpeca<>NULL)
		{
			$this->idos=$idos;
			$this->idpeca=$idpeca;
		}
	}
	
	
	
	/*
	 * function CarregaPeca
	* função de carregar reparos baseados na id do OS
	* chamando uma view do banco (pecassdaos)
	* @param $idos = id da os desejada
	*/
	public function carregaPeca($idos){
		$pecas= $this->carregaVisao('pecasusadas', $idos,'idos');
		if ($pecas)
		{
	
			foreach ($pecas as $peca){
				$resutaldo[]=new Peca($peca->id);
			}
			return $resutaldo;
		}
		else
		{
			return FALSE;
		}
	
	}
	public function carregarId($idos,$idpeca){
		//instancia instrução de SELECT
		$sql = new TSqlSelect();
		$sql->setEntity('pecadaos');
		$sql->addColumn('id');
	
		//cria critério de seleção basedado no ID
		$criterio= new TCriteria();
		$criterio->add(new TFilter('idos', '=', $idos));
		$criterio->add(new TFilter('idpeca', '=', $idpeca));
		//define o criterio de selção de dados
		$sql->setCriterio($criterio);
		//obtém transação ativa
		if ($con=TTransaction::get())
		{
			//cria mensagem de log e executa a consulta
			TTransaction::Log($sql->getInstruction());
			$resultado= $con->query($sql->getInstruction());
			//se retornou algum dado
			if ($resultado)
			{
				//rorna dados em forma de objeto
				$objeto= $resultado->fetch();
			}
			return $objeto[0];
		}
		else
		{
			//se não tiver transação, retonra uma exceção
			throw  new Exception('Não há transação ativa!!');
		}
	}
}
?>